<?php  
error_reporting(1);
write('1.txt',time());
function newChild($func_name) {  
echo "enter newChild\n";  
$args = func_get_args();  
unset($args[0]);  
$pid =  pcntl_fork();  
if ($pid == 0) {  
function_exists($func_name) and exit(call_user_func_array($func_name, $args)) or exit(-1);  
} else if($pid == -1) {  
echo "Couldn't create child process";  
} else {  
return $pid;  
}  
}  

function write($file, $content) {
    if (is_array($content)) {
        $content = '<?php return ' . var_export($content, 1) . '?>';
    }
    file_put_contents($file, $content);
}
function on_timer() {  
write('1.txt',time());
}  
/** 
* @param $func string, function name 
* @param $timeouts int, microtimes for time delay 
*/ 
function timer($func, $timeouts){  
echo "enter timer\n";  
$base = event_base_new();  
$event = event_new();  
event_set($event, 0, EV_TIMEOUT, $func);  
event_base_set($event, $base);  
event_add($event, $timeouts);  
event_base_loop($base);  
}  
$pid = newChild("timer", "on_timer", 5000);  
if ($pid > 0) {  
echo "master process exit\n";  
}